package com.tedu.utils;

import com.alibaba.druid.pool.DruidDataSource;

import java.io.File;
import java.sql.*;

/**
 * Created by IntelliJ IDEA.
 *
 * @author zq
 * @version 1.0
 * @create 2024-07-30 11:31
 * @since jdk1.8
 */
//提取jdbc重复的代码，提高复用性
public class JDBCUtils {
    /**
     * 释放资源
     *
     * @param rs   结果集
     * @param ps   传输器
     * @param conn 数据库的连接
     */
    public static void close(ResultSet rs, PreparedStatement ps, Connection conn) {
        if (rs != null) {//防止空指针异常
            try {
                rs.close();
            } catch (SQLException throwables) {
                System.out.println("执行失败...");//项目上线后的
                //throwables.printStackTrace();//程序调试阶段
            }
        }
        if (ps != null) {//防止空指针异常
            try {
                ps.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
        if (conn != null) {//防止空指针异常
            try {
                conn.close();
            } catch (SQLException throwables) {
                throwables.printStackTrace();
            }
        }
    }

    /**
     * 获取和数据库的连接
     */
    //创建数据库连接池
    private static DruidDataSource ds;
    static {
        ds = new DruidDataSource();//初始化一个连接池
        ds.setUrl("jdbc:mysql://localhost:3306/tedu?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true");
        ds.setUsername("root");
        ds.setPassword("root");
        ds.setInitialSize(5);//初始连接数
        ds.setMaxActive(20);//最大连接数
    }
    static {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    public static Connection getConnection() throws Exception {
        return ds.getConnection();
    }

}
